package ae.pcfc.cldos.online.common.clddb.domain;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.envers.Audited;


/**
 * The persistent class for the T_CLDOS_PROCESS_STEP database table.
 * 
 */
@Entity
@Table(name="T_CLDOS_PROCESS_STEP")
@Audited
public class ProcessStep implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="PROCESS_STEP_CODE")
	private String processStepCode;

	@Column(name="PROCESS_STEP_DESC")
	private String processStepDesc;

	@Column(name="PROCESS_STEP_DESC_A")
	private String processStepDescA;

	@Column(name="PROCESS_STEP_STATUS")
	private String processStepStatus;

	//bi-directional many-to-one association to ApplicationAttachment
	@OneToMany(mappedBy="ProcessStep")
	private List<ApplicationAttachment> ApplicationAttachments;

	//bi-directional many-to-one association to Process
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="PROCESS_CODE")
	private Process Process;

	//bi-directional many-to-one association to ProcessStepAction
	@OneToMany(mappedBy="ProcessStep")
	private List<ProcessStepAction> ProcessStepActions;

    public ProcessStep() {
    }

	public String getProcessStepCode() {
		return this.processStepCode;
	}

	public void setProcessStepCode(String processStepCode) {
		this.processStepCode = processStepCode;
	}

	public String getProcessStepDesc() {
		return this.processStepDesc;
	}

	public void setProcessStepDesc(String processStepDesc) {
		this.processStepDesc = processStepDesc;
	}

	public String getProcessStepDescA() {
		return this.processStepDescA;
	}

	public void setProcessStepDescA(String processStepDescA) {
		this.processStepDescA = processStepDescA;
	}

	public String getProcessStepStatus() {
		return this.processStepStatus;
	}

	public void setProcessStepStatus(String processStepStatus) {
		this.processStepStatus = processStepStatus;
	}

	public List<ApplicationAttachment> getApplicationAttachments() {
		return this.ApplicationAttachments;
	}

	public void setApplicationAttachments(List<ApplicationAttachment> ApplicationAttachments) {
		this.ApplicationAttachments = ApplicationAttachments;
	}
	
	public Process getProcess() {
		return this.Process;
	}

	public void setProcess(Process Process) {
		this.Process = Process;
	}
	
	public List<ProcessStepAction> getProcessStepActions() {
		return this.ProcessStepActions;
	}

	public void setProcessStepActions(List<ProcessStepAction> ProcessStepActions) {
		this.ProcessStepActions = ProcessStepActions;
	}
	
}